package com.jiunuan.live.msg.provider.config;

import java.util.concurrent.*;

public class ThreadPoolManger {
    // 创建一个线程池，用于处理普通的异步任务
    // 核心线程数为2，最大线程数为8，空闲线程保持时间3秒
    // 使用ArrayBlockingQueue作为任务队列，容量为1000
    // 使用自定义的ThreadFactory为线程命名，以便于调试和管理
    public static ThreadPoolExecutor commonAsyncPool = new ThreadPoolExecutor(
            2, 8, 3,
            TimeUnit.SECONDS,
            new ArrayBlockingQueue<>(1000)
            , new ThreadFactory() {
                @Override
                public Thread newThread(Runnable r) {
                    // 创建新的线程并设置名称
                    Thread newThread = new Thread(r);
                    // 为线程设置一个唯一的名称，方便识别和管理
                    newThread.setName("commonAsyncPool - " + ThreadLocalRandom.current().nextInt(10000));
                    return newThread;
                }
            }
    );

}
